package com.google.code.gronono.gps.ui.panels.pages;

import javax.swing.JPanel;

import com.google.code.gronono.gps.ui.controller.GPSController;

/**
 * Classe abstraite définissant une page du programme.<br/>
 * Elle permet de définir les éléments communs à toutes les pages.
 */
public abstract class AbstractPagePanel extends JPanel {
	/** serialVersionUID. */
	private static final long serialVersionUID = 2224183168485505148L;

	/** Le titre de la page. */
	private final String title;
	/** La description de la page */
	private final String description;

	/** Le contrôleur. */
	protected GPSController controller;

	/**
	 * Construit la page à partir du contrôleur, du titre et de la description de la page.
	 *
	 * @param controller Le contrôleur de la page.
	 * @param title Le titre de la page.
	 * @param description La description de la page.<br/>
	 * 		La description peut être mise en forme en utilisant le HTML.
	 */
	public AbstractPagePanel(final GPSController controller, final String title, final String description) {
		this.controller = controller;
		this.title = title;
		this.description = description;
	}

	/**
	 * Donne le titre de la page.
	 * @return Le titre de la page.
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * Donne la description de la page.
	 * @return La description de la page.
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * Retourne le contrôleur.
	 * @return Le contrôleur.
	 */
	public GPSController getController() {
		return controller;
	}
}
